/* Copyright (c) 2009 - 2010 98Labs Inc.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.sbal89.map.util;

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;

public class ColorUtil {

	public static String getWinningColor(List<Integer> values, HashMap<Integer,Integer> valueMap) {
		String winningColor = "0xFFFFFF"; //defaults to white 
		if(values.size()>0) {
			Collections.sort(values);
			int winningValue = values.get(values.size()-1);
			if (winningValue>0) {
				int winningCandidate = valueMap.get(winningValue);
				winningColor = ColorUtil.getPRColor(winningCandidate);
			}
		}
		return winningColor;
	}
	
	public static String getSNColor(int i) {
		String color = getSNColors().get(i-1); // because zero based
		return color;
	}
	
	public static String getVPColor(int i) {
		String color = getVPColors().get(i-1); // because zero based
		return color;
	}
	
	public static String getPRColor(int i) {
		String color = getPRColors().get(i-1); // because zero based
		return color;
	}
	
	private static List<String> getSNColors() {
		List<String> colors = new ArrayList<String>();
		colors.add("0xA9A9A9"); 
		colors.add("0x006400"); 
		colors.add("0xBDB76B"); 
		colors.add("0x8B008B"); 
		colors.add("0x556B2F"); 
		colors.add("0xFF8C00"); 
		colors.add("0x9932CC"); 
		colors.add("0x8B0000"); 
		colors.add("0xE9967A"); 
		colors.add("0x8FBC8F"); 
		colors.add("0x483D8B"); 
		colors.add("0x2F4F4F"); 
		colors.add("0x00CED1"); 
		colors.add("0x9400D3"); 
		colors.add("0xFF1493"); 
		colors.add("0x00BFFF"); 
		colors.add("0x696969"); 
		colors.add("0x1E90FF"); 
		colors.add("0xB22222"); 
		colors.add("0xFFFAF0"); 
		colors.add("0x228B22"); 
		colors.add("0xFF00FF"); 
		colors.add("0xDCDCDC"); 
		colors.add("0xF8F8FF"); 
		colors.add("0xFFD700"); 
		colors.add("0xDAA520"); 
		colors.add("0x808080"); 
		colors.add("0x008000"); 
		colors.add("0xADFF2F"); 
		colors.add("0xF0FFF0"); 
		colors.add("0xFF69B4"); 
		colors.add("0xCD5C5C"); 
		colors.add("0x4B0082"); 
		colors.add("0xFFFFF0"); 
		colors.add("0xF0E68C"); 
		colors.add("0xE6E6FA"); 
		colors.add("0xFFF0F5"); 
		colors.add("0x7CFC00"); 
		colors.add("0xFFFACD"); 
		colors.add("0xADD8E6"); 
		colors.add("0xF08080"); 
		colors.add("0xE0FFFF"); 
		colors.add("0xFAFAD2"); 
		colors.add("0xD3D3D3"); 
		colors.add("0x90EE90"); 
		colors.add("0xFFB6C1"); 
		colors.add("0xFFA07A"); 
		colors.add("0x20B2AA"); 
		colors.add("0x87CEFA"); 
		colors.add("0x778899"); 
		colors.add("0xB0C4DE"); 
		colors.add("0xFFFFE0"); 
		colors.add("0x00FF00"); 
		colors.add("0x32CD32"); 
		colors.add("0xFAF0E6"); 
		colors.add("0xFF00FF"); 
		colors.add("0x800000"); 
		colors.add("0x66CDAA"); 
		return colors;
	}

	private static List<String> getVPColors() {
		List<String> colors = new ArrayList<String>();
		colors.add("0xFF7F50 "); 
		colors.add("0x6495ED "); 
		colors.add("0xFFF8DC "); 
		colors.add("0xDC143C "); 
		colors.add("0x00FFFF "); 
		colors.add("0x00008B "); 
		colors.add("0x008B8B "); 
		colors.add("0xB8860B "); 
		return colors;
	}
	
	private static List<String> getPRColors() {
		List<String> colors = new ArrayList<String>();
		colors.add("0xFFEBCD"); 
		colors.add("0x0000FF"); 
		colors.add("0x8A2BE2"); 
		colors.add("0xA52A2A"); 
		colors.add("0xDEB887"); 
		colors.add("0x5F9EA0"); 
		colors.add("0x7FFF00"); 
		colors.add("0xD2691E"); 
		return colors;
	}
}
